Перейти к основному содержимому

5.07. Ключевые слова в PHP

Разработчику Архитектору

Ключевые слова в PHP

Управляющие структуры

Условные операторы

Ключевое словоЗначениеПример
ifВыполнение блока кода при истинности условияif ($x > 0) { echo "Положительное"; }
elseАльтернативный блок кода при ложности условияif ($x > 0) { echo "Положительное"; } else { echo "Отрицательное"; }
elseifДополнительное условие после ifif ($x > 0) { echo "Положительное"; } elseif ($x == 0) { echo "Ноль"; }
switchМножественный выбор на основе значенияswitch ($day) { case 1: echo "Понедельник"; break; }
caseВариант значения в конструкции switchcase "red": echo "Красный"; break;
defaultБлок по умолчанию в switchdefault: echo "Неизвестный цвет";

Циклы

Ключевое словоЗначениеПример
whileЦикл с предусловиемwhile ($i < 10) { echo $i; $i++; }
doНачало цикла с постусловиемdo { echo $i; $i++; } while ($i < 10);
forЦикл с инициализацией, условием и инкрементомfor ($i = 0; $i < 10; $i++) { echo $i; }
foreachПеребор элементов массива или объектаforeach ($array as $value) { echo $value; }
breakПрерывание цикла или switchwhile (true) { if ($x > 10) break; }
continueПереход к следующей итерации циклаfor ($i = 0; $i < 10; $i++) { if ($i % 2 == 0) continue; echo $i; }

Логические операторы

Ключевое словоЗначениеПример
andЛогическое И (низкий приоритет)if ($a and $b) { echo "Оба истинны"; }
orЛогическое ИЛИ (низкий приоритет)if ($a or $b) { echo "Хотя бы один истинен"; }
xorИсключающее ИЛИif ($a xor $b) { echo "Только один истинен"; }
&&Логическое И (высокий приоритет)if ($a && $b) { echo "Оба истинны"; }
!Логическое НЕif (!$flag) { echo "Флаг не установлен"; }

Обработка исключений

Ключевое словоЗначениеПример
tryБлок кода, в котором может возникнуть исключениеtry { $result = 10 / 0; }
catchОбработка перехваченного исключенияcatch (Exception $e) { echo $e->getMessage(); }
finallyБлок, выполняемый всегда после try/catchfinally { echo "Завершено"; }
throwГенерация исключенияthrow new Exception("Ошибка");

Функции

Ключевое словоЗначениеПример
functionОбъявление пользовательской функцииfunction greet($name) { return "Привет, $name"; }
returnВозврат значения из функцииfunction add($a, $b) { return $a + $b; }
staticОбъявление статической переменной в функцииfunction counter() { static $count = 0; return ++$count; }
globalДоступ к глобальной переменной внутри функцииfunction show() { global $x; echo $x; }

Классы и объекты

Ключевое словоЗначениеПример
classОбъявление классаclass User { public $name; }
newСоздание нового объекта$user = new User();
extendsНаследование классаclass Admin extends User { }
implementsРеализация интерфейсаclass MyClass implements MyInterface { }
interfaceОбъявление интерфейсаinterface Logger { public function log($msg); }
traitОбъявление трейтаtrait Loggable { public function log($msg) { } }
useИспользование трейта или пространства именuse Loggable;
publicПубличный модификатор доступаpublic $name;
protectedЗащищенный модификатор доступаprotected $password;
privateПриватный модификатор доступаprivate $secret;
abstractОбъявление абстрактного класса или методаabstract class Shape { abstract public function area(); }
finalЗапрет наследования класса или переопределения методаfinal class Utils { }
constОбъявление константы классаclass Config { const VERSION = "1.0"; }
selfСсылка на текущий классreturn self::VERSION;
parentСсылка на родительский классparent::__construct();
staticСсылка на вызывающий класс (позднее статическое связывание)return static::class;

Типы данных и объявления

Ключевое словоЗначениеПример
arrayСоздание массива$arr = array(1, 2, 3);
boolБулевый тип данныхfunction check(bool $flag) { }
intЦелочисленный тип данныхfunction add(int $a, int $b): int { }
floatЧисло с плавающей точкойfunction divide(float $a, float $b): float { }
stringСтроковый тип данныхfunction greet(string $name): string { }
objectТип объектfunction process(object $obj) { }
mixedЛюбой тип данныхfunction getValue(): mixed { }
voidОтсутствие возвращаемого значенияfunction log(string $msg): void { }
nullТип значения nullfunction maybeNull(): ?string { }
iterableТип для массивов и объектов Traversablefunction process(iterable $data) { }
callableТип для вызываемых значенийfunction execute(callable $callback) { }
neverТип для функций, которые никогда не возвращают значениеfunction abort(): never { exit(); }

Прочие ключевые слова

Ключевое словоЗначениеПример
namespaceОбъявление пространства именnamespace App\Controllers;
requireПодключение файла с ошибкой при отсутствииrequire "config.php";
require_onceПодключение файла один разrequire_once "autoload.php";
includeПодключение файла с предупреждением при отсутствииinclude "header.php";
include_onceПодключение файла один разinclude_once "functions.php";
echoВывод данныхecho "Привет, мир!";
printВывод данных (возвращает 1)print "Привет";
dieЗавершение выполнения скриптаdie("Ошибка подключения");
exitЗавершение выполнения скриптаexit(0);
issetПроверка существования переменнойif (isset($var)) { echo $var; }
unsetУдаление переменнойunset($var);
emptyПроверка на пустое значениеif (empty($array)) { echo "Пусто"; }
listПрисвоение значений массива переменнымlist($a, $b) = [1, 2];
cloneСоздание копии объекта$copy = clone $original;
instanceofПроверка принадлежности объекта к классуif ($obj instanceof User) { }
matchВыражение сопоставления (начиная с PHP 8.0)$result = match($status) { 200 => "OK", 404 => "Not Found" };
fnКороткая стрелочная функция (начиная с PHP 7.4)$square = fn($x) => $x * $x;
readonlyОбъявление свойства только для чтения (начиная с PHP 8.1)readonly class Point { public int $x; }
enumОбъявление перечисления (начиная с PHP 8.1)enum Status { case Draft; case Published; }

Магические ключевые слова

Ключевое словоЗначениеПример
__LINE__Текущий номер строкиecho "Строка: " . __LINE__;
__FILE__Полный путь к текущему файлуecho "Файл: " . __FILE__;
__DIR__Директория текущего файлаrequire __DIR__ . "/config.php";
__FUNCTION__Имя текущей функцииecho "Функция: " . __FUNCTION__;
__CLASS__Имя текущего классаecho "Класс: " . __CLASS__;
__TRAIT__Имя текущего трейтаecho "Трейт: " . __TRAIT__;
__METHOD__Имя текущего методаecho "Метод: " . __METHOD__;
__NAMESPACE__Имя текущего пространства именecho "Пространство: " . __NAMESPACE__;

Дополнительные ключевые слова

Ключевое словоЗначениеПример
asПереименование элемента в foreach или псевдоним пространства именforeach ($array as $key => $value) { }
callableТип данных для вызываемых значенийfunction execute(callable $callback) { }
cloneСоздание копии объекта$copy = clone $original;
constОбъявление константыconst MAX_SIZE = 100;
declareУстановка директив выполненияdeclare(strict_types=1);
dieПрекращение выполнения скриптаdie("Ошибка");
echoВывод одного или нескольких строкecho "Привет", "мир";
emptyПроверка на пустое значениеif (empty($var)) { }
evalВыполнение строки как кода PHPeval('echo "Тест";');
exitЗавершение выполнения скриптаexit(1);
fnКороткая стрелочная функция$add = fn($x, $y) => $x + $y;
gotoПереход к метке в кодеgoto label;
halt_compilerОстановка компилятора__halt_compiler();
issetПроверка существования переменнойif (isset($var)) { }
listПрисвоение значений массива переменнымlist($a, $b) = [1, 2];
matchВыражение сопоставления$result = match($status) { 200 => "OK" };
printВывод строкиprint "Текст";
readonlyОбъявление свойства только для чтенияreadonly class Point { }
unsetУдаление переменнойunset($var);
varУстаревший синоним publicvar $property;
yieldВозврат значения из генератораyield $value;
yield fromДелегирование генератораyield from $generator;

Ключевые слова для типов (начиная с PHP 8.0+)

Ключевое словоЗначениеПример
neverТип для функций, которые никогда не возвращают значениеfunction abort(): never { exit(); }
mixedЛюбой тип данныхfunction getValue(): mixed { return $value; }
falseТип со значением false`function check(): bool
trueТип со значением truefunction isEnabled(): true { return true; }
nullТип со значением nullfunction maybeNull(): ?string { }
voidОтсутствие возвращаемого значенияfunction log(string $msg): void { }
iterableТип для массивов и объектов Traversablefunction process(iterable $data) { }

Ключевые слова пространств имен

Ключевое словоЗначениеПример
namespaceОбъявление пространства именnamespace App\Controllers;
useИмпорт класса или функцииuse App\User;
asСоздание псевдонимаuse App\User as Customer;
__NAMESPACE__Текущее пространство именecho __NAMESPACE__;

Ключевые слова для работы с файлами

Ключевое словоЗначениеПример
requireПодключение файла с ошибкой при отсутствииrequire "config.php";
require_onceПодключение файла один разrequire_once "autoload.php";
includeПодключение файла с предупреждениемinclude "header.php";
include_onceПодключение файла один разinclude_once "functions.php";

Ключевые слова для объектов

Ключевое словоЗначениеПример
instanceofПроверка принадлежности объекта к классуif ($obj instanceof User) { }
newСоздание нового объекта$user = new User();
selfСсылка на текущий классreturn self::VERSION;
parentСсылка на родительский классparent::__construct();
staticПозднее статическое связываниеreturn static::class;
$thisСсылка на текущий объектreturn $this->name;

Ключевые слова для атрибутов (PHP 8.0+)

Ключевое словоЗначениеПример
attributeОбъявление пользовательского атрибута#[Attribute] class MyAttr { }

Зарезервированные слова, не являющиеся ключевыми

Эти слова зарезервированы для будущего использования и не могут быть использованы в качестве имен классов, интерфейсов или трейтов:

int, float, bool, string, true, false, null, resource, object, mixed, numeric, iterable, void, never, array, callable, self, static, parent

Магические константы

Ключевое словоЗначениеПример
__LINE__Номер текущей строкиecho "Строка: " . __LINE__;
__FILE__Полный путь к файлуecho "Файл: " . __FILE__;
__DIR__Директория файлаrequire __DIR__ . "/config.php";
__FUNCTION__Имя функцииecho __FUNCTION__;
__CLASS__Имя классаecho __CLASS__;
__TRAIT__Имя трейтаecho __TRAIT__;
__METHOD__Имя методаecho __METHOD__;
__NAMESPACE__Имя пространства именecho __NAMESPACE__;

Примечания

Ключевые слова в PHP не чувствительны к регистру, за исключением магических констант. Все ключевые слова могут использоваться в любом регистре: IF, If, if — это одно и то же ключевое слово.

Некоторые ключевые слова имеют альтернативные формы записи. Например, and и && выполняют одну и ту же логическую операцию, но имеют разный приоритет.